if(String==String)的不匹配、不相等问题

您所在的位置:网站首页 string 判断 if(String==String)的不匹配、不相等问题

if(String==String)的不匹配、不相等问题

2024-06-26 08:15| 来源: 网络整理| 查看: 265

基本数据类有:byte short int long float double char boolean 这8种类型的 变量名和值 都存储在栈空间中,而String类型是引用数据类型,String在栈中只储存 变量名和堆地址值

因此8种基本数据类型可以直接用==来判断是否相等

而String作为引用数据类型,用==是判断二者地址是否相同,用equals方法才是判断值是否相等

equals用法:

if ( a.equals(b) ) { 函数体 }

==用法:

if ( a==b ) { 函数体 }

import java.util.Scanner; public class StringTest { public static void main(String[] args) { Scanner scan = new Scanner(System.in);//实例化Scanner String a = "abc"; String b = new String("abc"); //因为String是引用数据类型,所以可以用new来new一个String System.out.println("输入:abc"); String c = scan.next(); //从键盘输入的abc和直接定义效果一样 System.out.println("/*****equals是判断内容值是否相等*****/"); if (a.equals(b) && b.equals(c) && c.equals(a)) { System.out.println("a equals b && b equals c && c equals a"); } System.out.println("/*****==是判断二者引用是否相同*****/"); c = a; //c指向a if (a == c && a.equals(c)) { // 引用传递之后值也一定相等 if(true) System.out.println("a==c && a.equals(c)"); } if (b == c || a == b) {//引用不同,if(false) System.out.println("b=c"); } else { System.out.println("b!=c a!=b"); } } }

结果:

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3